from mcp.server.fastmcp import FastMCP
import math

mcp = FastMCP("Greatest Common Divisor Calculator")

@mcp.tool()
def compute_gcd(a: int, b: int) -> int:
    """计算两个大数的最大公约数

    Args:
        a: 第一个整数
        b: 第二个整数

    Returns:
        两个数的最大公约数
    """
    if not (isinstance(a, int) and isinstance(b, int)):
        raise ValueError("输入必须为整数")
    a = abs(a)
    b = abs(b)
    if a == 0 and b == 0:
        raise ValueError("两个数不能同时为0")
    return math.gcd(a, b)

if __name__ == "__main__":
    mcp.run(transport="stdio")